Welcome to pandas!

3.9 遍历DataFrame行列(applymap)

Applymap()函数的用法比较简单,是对DataFrame中的每个元素执行指定函数的处理,虽然用途不如apply广泛,但是在某些场合还是比较有用,比如将数字保留到小数点后两位。

import pandas as pd

df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\测试素材.保留小数.xlsx" )

df.iloc[:, 1 :]=df.iloc[:, 1 :].applymap( "{:.2f}" .format)

# df.iloc[:,1:]= df.iloc[:,1:].apply(lambda s:s.apply("{:.2f}".format))

#等同上一行,是先处理Series,然后再处理Series里面的每一个元素

print (df)

姓名 数学 语文 英语
0 张三 77.33 85.85 70.13
1 李四 70.13 66.93 66.67
2 王五 80.87 61.17 60.17
3 赵六 81.97 53.53 81.33

以上打印出来的数据表面看起来是保留两位小数的数据,其实是保留两位小数的字符(object),

如果要变成保留两位小数的数据,则需要在后面加上astype(“float”)

df.iloc[:, 1 :]=df.iloc[:, 1 :].applymap( "{:.2f}" .format).astype( “float” )

import pandas as pd

df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\测试素材.保留小数.xlsx" )

df.iloc[:, 1 :]=df.iloc[:, 1 :].applymap( lambda n: "优" + str (n) if n> 80 else "差" )

#不在前面加”优”,则返回原值 的写法为n:n, 如果要全部类型改为整数,则改为n:int(n)

print (df)

返回:

姓名 数学 语文 英语
0 张三 优85.8536585365
1 李四
2 王五 优80.86666666
3 赵六 优81.96666666 优81.33333333